FIG. 1 schematically illustrates a typical prior-art GNSS surveying scenario 100 in which a rover 105 and a base station 110 observe signals from GNSS satellites 115, 120, . . . 130 on multiple carrier frequencies such as carrier frequencies L1 and L2. The signals are influenced by effects of the atmosphere 140 of the Earth 150. Observation data from the rover and base station are processed to precisely determine the rover position.
Determining position of a moving rover in real-time, sometimes referred to as “real-time kinematic” surveying or “RTK” can be loosely divided into two sets of tasks: (1) estimation of carrier phase ambiguities, and (2) use of the estimated carrier phase ambiguities to estimate rover position.
A prior art approach divides the processing into float solution and search (FSS) tasks, and data preparation and position processor (DPPP) tasks. The FSS tasks serve to estimate float values for the ambiguities and then to search and resolve fixed-value carrier-phase ambiguities. The resulting ambiguity information is then used in the DPPP tasks, where a position processor uses the ambiguities together with carrier-phase observation data to produce the final reported position solution.
FIG. 2 schematically illustrates such a prior art approach at 200. Multi-frequency GNSS observation data 205 of a rover and multi-frequency GNSS observation data 210 of a base station are prepared at 215 to obtain a prepared data set 220 at each epoch. Preparation typically includes matching and differencing of the observations by epoch, for example. The prepared data 220 is supplied at each epoch to a single-differenced float filter (or filter banks) 225 which estimates float-valued carrier-phase ambiguities (with associated statistical data) 230. At 240 a search is conducted to identify a correct set of fixed integer ambiguities 245. As long as carrier lock is maintained at the rover and base station receivers, the fixed ambiguities 245 remain constant from epoch to epoch. These are used in a position processor 250 to estimate rover position 255 relative to the base station location from each subsequent epoch of prepared data 220.
An advantage of this approach is that, once the ambiguities are correctly fixed, a fresh position fix can be computed at each epoch of GNSS observation data, e.g., at 1 Hz or even 10 Hz, with a modest processing load which is feasible in a battery-powered rover. See, for example, U.S. Pat. No. 7,432,853. A disadvantage of this approach is that incorrect fixing of the carrier-phase ambiguities can result in a significant error in estimated rover position. Should this occur, the iterative filters used in the estimation process must be reset, incurring a delay until the ambiguities are again estimated and fixed for use in determining rover position.
Another approach avoids fixing the carrier-phase ambiguities and thus avoids the possibility that they may be incorrectly fixed. Instead, the search process determines candidate sets of carrier-phase ambiguities and their respective probabilities of correctness. A weighted average of the candidate sets is formed using, for example, the probabilities of correctness as weighting factors See for example P. Teunissen et al.; GNSS Carrier Phase Ambiguity Resolution Challenges and Open Problems, In M. G. Sideris (ed.); Observing our Changing Earth, International Association of Geodesy Symposia 133, Springer Verlag Berlin-Heidelberg 2009; Verhagen, Sandra, The GNSS integer ambiguities: estimation and validation, Publications on Geodesy 58, Delft, 2005. 194 pages, ISBN-13: 978 90 6132 290 0. ISBN-10: 90 6132 290 1; and International Patent Application PCT/US/2009/004476.
FIG. 3 schematically illustrates such a prior art approach at 300. Multi-frequency GNSS observation data 305 of a rover and multi-frequency GNSS observation data 310 of a base station are prepared at 315 to obtain a prepared data set 320 at each epoch. Preparation typically includes matching and differencing of the observations by epoch, for example. The prepared data 320 is supplied at each epoch to a single-differenced float filter (or filter banks) 325 which estimates float-valued carrier-phase ambiguities (with associated statistical data) 330. At 335 a search is conducted to identify candidate sets of possibly correct fixed integer ambiguities 340 along with statistical information such as their respective probabilities of correctness. At 345 a weighted average of the candidate sets (in the ambiguity domain) or a weighted average rover position 350 based on the candidate sets (in the position domain) is formed, using for example the probabilities of correctness as a weighting factor. The weighted average is used in a position processor 355 to estimate rover position 360 relative to the base station location from each subsequent epoch of prepared data 320.
With the weighted averaging approach, the FSS tasks takes on the role of producing position estimates every epoch, e.g., at 1 Hz, rather than just estimating and reporting ambiguities. However, many applications require position estimates at a rate greater than 1 Hz. Machine guidance, for example, requires 10 Hz position updates with minimal latency. A drawback of this approach is that it is not feasible to run the full weighted-average solution at the highest observation-data rate of the receivers in a device having limited computing power, such as in the processor of a mobile rover receiver.
The term “delta phase” refers to the time-wise differencing of GNSS carrier-phase measurements. The change in phase observed over time at a single-receiver is dependent on:
change in rover-satellite range due to satellite motion (known from ephemeris),
change in rover-satellite range due to motion of the receiver,
drift in the satellite clock (known from ephemeris),
drift in the rover receiver clock,
change in atmospheric error (generally varies slowly in time).
So long as phase tracking is maintained on a satellite (i.e. there are no cycle slips), the carrier-phase ambiguity for that satellite remains constant. When delta phase is observed on four or more satellites simultaneously, it can be used to determine the change in rover location and change in rover receiver clock over time.
A further prior-art approach uses undifferenced delta phase positioning form high-update-rate (low-latency) RTK rover position estimates. Delta phase processing only determines changes in rover position and not the absolute position of the rover. Hence, the undifferenced delta phase position changes are combined with the position estimates derived from 1 Hz synchronized base/rover data to produce unambiguous position estimates with low latency.
FIG. 4 schematically illustrates such a prior art approach at 400. Multi-frequency GNSS observation data 405 of a rover and multi-frequency GNSS observation data 410 of a base station are prepared at 415 to obtain a prepared data set 420 at each epoch. Preparation typically includes matching of the observations by epoch, for example. The prepared data 420 is supplied at each epoch to a single-differenced float filter (or filter banks) 425 which estimates float-valued carrier-phase ambiguities (with associated statistical data) 430. At 435 a search is conducted to identify a correct set of fixed integer ambiguities 440. As long as carrier lock is maintained at the rover and base station receivers, the fixed ambiguities 440 remain constant from epoch to epoch. These are used in a position processor 445 to estimate rover position 450 relative to the base station location from each subsequent epoch of prepared data 420. The rover position 450 is updated at a relatively low rate, such as 1 Hz. At 455 prepared data 420 is used to determine rover delta position 460 from epoch to epoch at a relatively high rate, such as 5 Hz. At 465 the latest rover position 450 relative to the base station is updated with the high-rate delta position estimates 460 to obtain a current updated position 470 at the high rate.
FIG. 5 graphically illustrates at 500 a sequence of position estimates using the approach of FIG. 4. In this example, rover positions 510, 520, 530, 540, 550, 560, 570 are determined from the fixed ambiguities at 1 Hz, and these are updated at a 5 Hz rate using the delta-phase position differences 512, 514, 516, 518, etc. A drawback of this approach is that unmodelled variation in the satellite clocks plus changes in the atmospheric delay cause the undifferenced delta phase position estimates to accumulate errors over time. The longer the time delta, the larger the error accumulated in the position estimates.
Single-differenced carrier-phase observations are frequently used in GNSS positioning. A single-difference is formed by subtracting base and rover data observed at the same time to a common satellite. The single-differencing process is best explained by way of the observation equations. Equations (1) and (2) show the undifferenced carrier-phase observation models, expressed in meters, for base (b) and rover (s) receivers, observed to satellite (s), at epoch time k.φbs(k)=ρbs(k)+Ts(k)+tb(k)+Ibs(k)+τbs(k)+Nbs  (1)φs(k)=ρrs(k)+Ts(k)+tr(k)+Irs(k)τrs(k)+Nrs  (2)Where:φbs(k) Base (denoted with subscript b) receiver phase measurement to satellite s, at epoch time k (expressed in meters);ρbs(k) Geometric range from receiver b, to satellite s, at epoch k;Ts(k) Satellite clock error at epoch k;tb(k) Base receiver clock error at epoch k;Ibs(k) Ionospheric bias for receiver b, and satellite s at epoch k;τbs(k) Tropospheric bias for receiver b, and satellite s at epoch k;Nbs Integer carrier phase ambiguity term (scaled into meters) for satellite s and receiver b(with analogous definitions for the rover quantities in Equation (2)).
Based on (1) and (2), the corresponding single-difference phase equation is given by:Δφs(k)=φrs(k)−φbs(k)=Δρs(k)+Δt(k)+ΔIs(k)+Δτs(k)+ΔNs  (3)Where:Δφs(k) Single-difference receiver phase measurement to satellite s, at epoch time k (expressed in meters);Δρs(k) Single-difference receiver clock error at epoch k;Δt(k) Single-difference ionospheric bias for satellite s at epoch k;ΔIs(k) Single-difference tropospheric bias for satellite s at epoch k;Δτs(k) Single-difference geometric range to satellite s, at epoch k;ΔNs Single-difference integer carrier phase ambiguity term (scaled into meters) for satellite s.
The satellite clock error present in the undifferenced measurement models of (1) and (2) is removed by the single-differencing process, and is therefore absent from (3). When the base and rover receiver are closely spaced (i.e. less than 20 km apart), the ionospheric and tropospheric biases are often very similar at both sites and therefore the single-difference atmospheric bias terms ΔIs(k), and Δτs (k) approach zero and are often ignored. The single-differenced carrier-phase ambiguity term ΔNs includes the whole number of integer cycles between base, rover and satellite at the time phase tracking commenced. In order to be able to use single-differenced carrier-phase for positioning applications it is necessary to estimate the carrier phase ambiguity term.
A single-differenced delta phase combination is formed by time-wise differencing of single-difference phase observations:δΔφs(k)=Δφs(k)−Δφs(k−1)  (4)Where:δΔφs(k) Single-difference delta phase observation formed between base and rover receivers to satellite s, at epochs (k) and (k−1).
One of the major advantages of the single-differenced delta phase approach is that because the carrier-phase ambiguity terms are constant (while carrier tracking is maintained, i.e., there is no cycle slip), they are removed from the observation model:δΔφs(k)=δΔρs(k)+δΔt(k)+δΔIs(k)+δΔτs(k)  (5)
Although the single-differenced delta phase observation equation (5) includes ionospheric and tropospheric error terms, it is important to note that these errors are generally very small even on long baselines and for time-deltas of tens of seconds.
The quantities of interest in (5) are the base & rover receiver coordinates contained within the geometric range term:
                                              ⁢                                                            δΔρ                s                            ⁡                              (                k                )                                      =                                                            Δρ                  s                                ⁡                                  (                  k                  )                                            -                                                Δρ                  s                                ⁡                                  (                                      k                    -                    1                                    )                                                              ⁢                                          ⁢                                          ⁢                                                    δΔρ                s                            ⁡                              (                k                )                                      =                                                            ρ                  r                  s                                ⁡                                  (                  k                  )                                            -                                                ρ                  b                  2                                ⁡                                  (                  k                  )                                            -                              [                                                                            ρ                      r                      s                                        ⁡                                          (                                              k                        -                        1                                            )                                                        -                                                            Δρ                      r                      s                                        ⁡                                          (                                              k                        -                        1                                            )                                                                      ]                                                                        (        6        )                                                      δΔρ            s                    ⁡                      (            k            )                          =                                                                                                                                                {                                                                                                            x                              s                                                        ⁡                                                          (                              k                              )                                                                                -                                                                                    x                              r                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                        +                                                                                                                                                                  {                                                                                                            y                              s                                                        ⁢                                                          (                              k                              )                                                                                -                                                                                    y                              r                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                        +                                                                  {                                                                                                            z                              s                                                        ⁡                                                          (                              k                              )                                                                                -                                                                                    z                              r                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                                                                                    -                                                                                                                                        {                                                                                                            x                              s                                                        ⁡                                                          (                              k                              )                                                                                -                                                                                    x                              b                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                        +                                                                                                                                                                  {                                                                                                            y                              s                                                        ⁢                                                          (                              k                              )                                                                                -                                                                                    y                              b                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                        +                                                                  {                                                                                                            z                              s                                                        ⁡                                                          (                              k                              )                                                                                -                                                                                    z                              b                                                        ⁡                                                          (                              k                              )                                                                                                      }                                            2                                                                                                    -                                                                                                                                        {                                                                                                            x                              s                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                -                                                                                    x                              r                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                                      }                                            2                                        +                                                                  {                                                                                                            y                              s                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                -                                                                                    y                              r                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                                      }                                            2                                        +                                                                                                                                          {                                                                                                    z                            s                                                    ⁡                                                      (                                                          k                              -                              1                                                        )                                                                          -                                                                              z                            r                                                    ⁡                                                      (                                                          k                              -                              1                                                        )                                                                                              }                                        2                                                                                +                                                                                                                                        {                                                                                                            x                              s                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                -                                                                                    x                              b                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                                      }                                            2                                        +                                                                  {                                                                                                            y                              s                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                -                                                                                    y                              b                                                        ⁡                                                          (                                                              k                                -                                1                                                            )                                                                                                      }                                            2                                        +                                                                                                                                          {                                                                                                    z                            s                                                    ⁡                                                      (                                                          k                              -                              1                                                        )                                                                          -                                                                              z                            b                                                    ⁡                                                      (                                                          k                              -                              1                                                        )                                                                                              }                                        2                                                                                                          (        7        )            Where:xs(k), ys(k), zs(k) Earth-centred, earth-fixed Cartesian coordinates of satellite s, at epoch k.xr(k), yr(k), zr(k) Earth-centred, earth-fixed Cartesian coordinates of rover receiver, at epoch k.
The satellites' coordinates are available via the broadcast satellite ephemeris and therefore are known quantities. Similarly, the coordinates of the base receiver can be assumed to be known. The only unknown quantities remaining in (7) are the change in rover coordinates from epochs k−1 to k, and the change in receiver clock difference. That is, the single-difference delta phase observation equation is a function of the rover receiver coordinate changes and the single-differenced receiver clock delta:δΔφs(k)=f{δxr(k),δyr(k),δzr(k),δΔt(k)}  (8)Where the rover coordinate deltas are given by:δxr(k)=xr(k)−xr(k−1)δyr(k)=yr(k)−yr(k−1)δzr(k)=zr(k)−zr(k−1)  (9)
Single-difference delta phase observations can be formed for each satellite tracked at base and rover receivers at common time epochs according to (8). Generally a least squares or Kalman filtering approach is used to solve for the unknown quantities in (8).
Improved GNSS processing methods and apparatus are desired, especially to achieve faster convergence to a solution, improved accuracy and/or greater availability.